﻿var bOpcodeAuthSetted = false;
var thisOpcodeAuth = new Array(); //  권한설정관련 전역변수 선언! initButtonWithAuth() 호출시 재설정됨!!
/*******************************************************************************
 * function : 권한별 button enable/disable set! 버튼권한초기설정
 * argument : _objectID1, _objectID2, ... (buttonID)
 * 주의사항 : page load 시 호출
 *            버튼속성에 Opcode_cd가 정의되어 있지 않을 경우 비활성!!!
 * ex) initButtonWithAuth('buttonID1', 'buttonID2', .... )
 *******************************************************************************/
function initButtonWithAuth() {	
	if ( initButtonWithAuth.arguments == null )
		return;
    var argCnt    = initButtonWithAuth.arguments.length;
    var _objectID;
    var _object;
    var _op_code;
    var _btnAble;

	if(!bOpcodeAuthSetted) {
		setOpcodeAuth();
	}
    
    //  버튼갯수 LOOP
    for(var i=0; i<argCnt; i++) {
        _objectID   = initButtonWithAuth.arguments[i];
        _object     = document.getElementById(_objectID);

		if ( _object == null || _object == undefined ) 
			continue;
			
        _op_code    = _object.getAttribute("opcode");		
        _btnAble    = getOpcodeAuth(_op_code);

        //  버튼 활성/비활성 SET!!!
        setButtonAble(_objectID, _btnAble);
        
    } // END OF for LOOP	
} // END OF initButtonWithAuth()

/*******************************************************************************
 * function : 거래종류 권한설정 
 * argument : 
 * 주의사항 : initButtonWithAuth()에서 호출
 *******************************************************************************/
function setOpcodeAuth() {	
	bOpcodeAuthSetted = true;
	
	var vXmlDoc = document.XMLDocument;
	
	if(vXmlDoc == null)
		return;
	
	var grpName = "OPCODELIST";
	var tagName = "OPCODE_ID";
	var grpNode = null;
	var tagList = null;
	if ( vXmlDoc.getElementsByTagName(grpName) != null ){
		var length = vXmlDoc.getElementsByTagName(grpName).length;				
		var index = 0;
		for(var i=0; i<length; i++) {			
			grpNode = vXmlDoc.getElementsByTagName(grpName)[i];
			tagNode = grpNode.getElementsByTagName(tagName)[0];
			
			if ( tagNode.childNodes[0] != null ){
				thisOpcodeAuth[index] = new Object();
    	        thisOpcodeAuth[index].opcode = tagNode.childNodes[0].nodeValue;
				++index;
			}
		}
	 }		
}// END OF setOpcodeAuth()

/*******************************************************************************
 * function : 메뉴내 거래종류 권한조회
 * argument : _opcode(거래종류)
 * 주의사항 : initButtonWithAuth()에서 호출
 *******************************************************************************/
function getOpcodeAuth(_opcode) {
    var _btnAble = false;   //  초기권한 false SET!!

	if(!bOpcodeAuthSetted){
		setOpcodeAuth();
	}
	
    for(var j=0; j<thisOpcodeAuth.length; j++) {		
        if(thisOpcodeAuth[j].opcode == _opcode) {
            _btnAble = true;
            break;
        }
    }
    return _btnAble;
}// END OF getOpcodeAuth() 

/*******************************************************************************
 * function : 권한별 button enable/disable set!
 * argument : _objectID (buttonID)
 *            _btnAble (true/false)
 *            _object,_boolAble 묶음으로 파라미터 전송.
 * 주의사항 : _btnAble조건에 더해 해당거래종류 권한 체크해서 둘다 true일 경우만 활성!
 *            버튼속성에 Opcode_cd가 정의되어 있지 않을 경우 비활성!!!
 * ex) setButtonAbleWithAuth('buttonID1', true, 'buttonID2', false ,.....)
 *******************************************************************************/
function setButtonAbleWithAuth() {
    var argCnt    = setButtonAbleWithAuth.arguments.length;
    var _objectID;
    var _object;
    var _trxKind;
    var _btnAble;
    
    //  버튼갯수 LOOP
    for(var i=0; i<argCnt; i++) {
        if(i%2 == 0) {
            _objectID   = setButtonAbleWithAuth.arguments[i]
            _object     = document.getElementById(_objectID);
			if ( _object == null || _object == undefined ){
				i++;
				continue;
			} 
            _trxKind    = _object.getAttribute("opcode");
        }else if(i%2 == 1) {
            _btnAble    = setButtonAbleWithAuth.arguments[i];
            //  버튼 활성/비활성 SET!!!
            if(_btnAble && getOpcodeAuth(_trxKind)) {
                setButtonAble(_objectID, true);
            }else {
                setButtonAble(_objectID, false);
            }
        }
    } // END OF for LOOP
} // END OF setButtonAbleWithAuth()

/*******************************************************************************
 * function : button enable/disable set!
 * argument : _objectID (buttonID)
 *            _boolAble (true/false)
 *            _object,_boolAble 묶음으로 파라미터 전송.
 * use      : setButtonAble( 'btnPopReq' , true
 *          ,'btnPopLoan' , false); 
 *******************************************************************************/
function setButtonAble() {
    var argCnt = setButtonAble.arguments.length;
    var _objectID;
    var _boolAble;    

    for(var i=0; i<argCnt; i++) {
        if(i%2 == 0) {
            _objectID = setButtonAble.arguments[i];
        }else if(i%2 == 1) {
            _boolAble = setButtonAble.arguments[i];
            var obj = document.getElementById(_objectID);
			if ( obj == null ){
				continue;
			}
			            
			if(_boolAble) {
                document.getElementById(_objectID).disabled = false;                
                document.getElementById(_objectID).style.cursor = 'hand';
            }else {
                document.getElementById(_objectID).disabled = true;                
                document.getElementById(_objectID).style.cursor = 'none';
            }
        }
    }
}//END OF setButtonAble()

/*******************************************************************************
 * function : 권한에 상관없는 버튼들 Enable, Disable set!!
 * argument : _objectID (buttonID)
 *            _btnAble (true/false)
 *            _object,_boolAble 묶음으로 파라미터 전송. 
 * 비고사항 : setButtonAbleWithAuth()와 동일한 역할 수행(권한만 없는 것임)
 * ex) setButtonAbleWithAuth('buttonID1', true, 'buttonID2', false ,.....)
 *******************************************************************************/
// 이미지 동적 컨트롤
function setButtonAbleWithEtc() {
    var argCnt    = setButtonAbleWithEtc.arguments.length;
    var _objectID;
    var _object;
    var _btnAble;
    //  버튼갯수 LOOP
    for(var i=0; i<argCnt; i++) {
        if(i%2 == 0) {
            _objectID   = setButtonAbleWithEtc.arguments[i]
            _object     = document.getElementById(_objectID);
        }else if(i%2 == 1) {
            _btnAble    = setButtonAbleWithEtc.arguments[i];
            //  버튼 활성/비활성 SET!!!
            if(_btnAble ) {
                setButtonAble(_objectID, true);
            }else {
                setButtonAble(_objectID, false);
            }
        }
    } // END OF for LOOP
}// END OF setButtonAbleWithEtc()